package com.lmaos.basetools.menuList;

import java.util.List;
import java.util.Set;
/**
 * 
 * @author lmaos
 *
 * <p>作者：张星宇</p>
 * <p>时间：2017年5月23日 下午10:57:34</p>
 *
 */
public interface MenuMg {
	

	/**
	 * 说明：添加一个菜单项<br>
	 * 时间：2017年5月23日 下午11:01:17 
	 *
	 * @param menuItem
	 */
	public void addMenuItem(MenuItem menuItem);
	/**
	 * 说明：	添加菜单项集合	<br>
	 * 时间：2017年5月23日 下午11:03:22
	 *
	 * @param menuItems
	 */
	public void addMenuItems(MenuItem... menuItems);
	/**
	 * 说明：	获得一个新的索引	<br>
	 * 时间：2017年5月23日 下午11:04:01
	 *
	 * @return
	 */
	public long getIndexId();
	/**
	 * 说明：查询path下所有项	<br>
	 * 时间：2017年5月23日 下午11:04:17
	 *
	 * @param startPath
	 * @return
	 */
	public List<MenuItem> findMenuItemByURLPath(String startPath);
	/**
	 * 说明：通过url 获得这个项	<br>
	 * 时间：2017年5月23日 下午11:04:36
	 *
	 * @param url
	 * @return
	 */
	public MenuItem getMenuItemByURL(String url);
	/**
	 * 说明：	通过路径获取目录 <br>
	 * 时间：2017年5月23日 下午11:04:46
	 *
	 * @param path
	 * @return
	 */
	public MenuDirectory getMenuDirectoryByPath(String path);
	
	/**
	 * 说明：移除	<br>
	 * 时间：2017年5月23日 下午11:04:58
	 *
	 * @param url
	 */
	public void remove(String url);
	/**
	 * 说明：	获取全部的菜单项	<br>
	 * 时间：2017年5月23日 下午11:05:17
	 *
	 * @return
	 */
	public List<MenuItem> getAllMenuItem();
	/**
	 * 说明：获得根目录		<br>
	 * 时间：2017年5月23日 下午11:05:29
	 *
	 * @return
	 */
	public MenuDirectory getRootMenuDirectory();
	
	public MenuItem getMenuItemById(long menuId);
	
	public final static int verifyCanCreate_SUCC = 1;
	public final static int verifyCanCreate_EXIST = 2;		// 存在
	public final static int verifyCanCreate_BLANK = 3;		// 不能为空
	public final static int verifyCanCreate_EXIST_DIR = 4;  // 子目录存在这个目录
	public final static int verifyCanCreate_EXIST_FILE = 5; // 子文件存在这个文件
	/**
	 * 说明：		<br>
	 * 时间：2017年6月29日 下午5:09:02
	 *
	 * @param absoluteMenuPath
	 * @return 0 可以创建 
	 */
	public int verifyCanCreate(String absoluteMenuPath);
	
	public void clear(Set<String> url);
}
